class Solution {
public:
    bool isValid(string s) {
        stack<char> st;
        for(char &ch:s)
        {
            if(st.empty()) {st.push(ch); continue;}
            switch(ch)
            {
                case ')': if(st.top()!='(') return false;
                            else {st.pop(); break;}
                case ']': if(st.top()!='[') return false;
                            else {st.pop(); break;}
                case '}': if(st.top()!='{') return false;
                            else {st.pop(); break;}
                default: st.push(ch);
            }
        }
        return st.empty();
     }
};